Newspaper 1 yıl önce
ebeveyn
işleme
f442a7ccdd

+ 5 - 0
huimv-cattle/pom.xml

@@ -63,6 +63,11 @@
             <!--            <version>3.4.2</version>-->
             <version>3.4.3.4</version>
         </dependency>
+        <dependency>
+            <groupId>com.belerweb</groupId>
+            <artifactId>pinyin4j</artifactId>
+            <version>2.5.1</version>
+        </dependency>
         <!-- mybatis-plus-extension -->
         <dependency>
             <groupId>com.baomidou</groupId>

+ 10 - 0
huimv-cattle/src/main/java/com/huimv/cattle/controller/SysFarmController.java

@@ -103,5 +103,15 @@ public class SysFarmController {
     public Result listVillage(){
         return new Result(ResultCode.SUCCESS,sysFarmService.list(new QueryWrapper<SysFarm>().ne("parent_code","0")));
     }
+
+    @PostMapping("/addFarm")
+    public Result addFarm(@RequestBody Map<String, String> paramsMap){
+        return sysFarmService.addFarm(paramsMap);
+    }
+
+    @PostMapping("/addTown")
+    public Result addTown(@RequestBody Map<String, String> paramsMap){
+        return sysFarmService.addTown(paramsMap);
+    }
 }
 

+ 4 - 0
huimv-cattle/src/main/java/com/huimv/cattle/service/SysFarmService.java

@@ -38,4 +38,8 @@ public interface SysFarmService extends IService<SysFarm> {
     Result listVillageFarm(HttpServletRequest request, Map<String, String> paramsMap);
 
     Result newSub(HttpServletRequest request, Map<String, String> paramsMap);
+
+    Result addFarm(Map<String, String> paramsMap);
+
+    Result addTown(Map<String, String> paramsMap);
 }

+ 7 - 2
huimv-cattle/src/main/java/com/huimv/cattle/service/impl/OverviewServiceImpl.java

@@ -257,9 +257,14 @@ public class OverviewServiceImpl extends ServiceImpl<OverviewMapper, Overview> i
             jsonObject.put("outputValue", 0);
             jsonObject.put("variety", 0);
         } else {
-            jsonObject.put("stockCount", stock.getFatStock()+stock.getBullStock()+stock.getCowStock());
+            if (ObjectUtil.isNotEmpty(stock)){
+                jsonObject.put("stockCount", stock.getFatStock()+stock.getBullStock()+stock.getCowStock());
+                jsonObject.put("breedCount", stock.getBullStock());
+            }else {
+                jsonObject.put("stockCount", 0);
+                jsonObject.put("breedCount", 0);
+            }
             jsonObject.put("outCount", overview.getOutCount());
-            jsonObject.put("breedCount", stock.getBullStock());
             jsonObject.put("farmCount", overview.getFarmCount());
             jsonObject.put("outputValue", allMoney);
             jsonObject.put("variety", overview.getVariety());

+ 10 - 3
huimv-cattle/src/main/java/com/huimv/cattle/service/impl/StockServiceImpl.java

@@ -288,9 +288,16 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
         Integer allFat =0;
 
         for (String s : city) {
-            allCow += stockMapper.selectOne(new QueryWrapper<Stock>().eq("farm_code",s)).getCowStock();
-            allBull += stockMapper.selectOne(new QueryWrapper<Stock>().eq("farm_code",s)).getBullStock();
-            allFat += stockMapper.selectOne(new QueryWrapper<Stock>().eq("farm_code",s)).getFatStock();
+            Stock stock = stockMapper.selectOne(new QueryWrapper<Stock>().eq("farm_code", s));
+            if (ObjectUtil.isNotEmpty(stock)){
+                allCow += stock.getCowStock();
+                allBull += stock.getBullStock();
+                allFat += stock.getFatStock();
+            }else {
+                allCow += 0;
+                allBull += 0;
+                allFat += 0;
+            }
         }
         Integer allCount = allBull+allCow+allFat;
         jsonObject1.put("fatStock",allFat);

+ 133 - 7
huimv-cattle/src/main/java/com/huimv/cattle/service/impl/SysFarmServiceImpl.java

@@ -1,5 +1,6 @@
 package com.huimv.cattle.service.impl;
 
+import cn.hutool.core.date.DateTime;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -9,18 +10,14 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 //import com.huimv.breed.common.utils.ResultUtil;
-import com.huimv.cattle.mapper.SysFarmMapper;
-import com.huimv.cattle.mapper.SysRegionCounTownVillMapper;
-import com.huimv.cattle.mapper.SysUserAccountMapper;
-import com.huimv.cattle.pojo.DataSource;
-import com.huimv.cattle.pojo.SysFarm;
-import com.huimv.cattle.pojo.SysRegionCounTownVill;
-import com.huimv.cattle.pojo.SysUserAccount;
+import com.huimv.cattle.mapper.*;
+import com.huimv.cattle.pojo.*;
 import com.huimv.cattle.pojo.vo.TreeFarm;
 import com.huimv.cattle.service.DataSourceService;
 import com.huimv.cattle.service.StockService;
 import com.huimv.cattle.service.SysFarmService;
 import com.huimv.cattle.token.TokenSign;
+import com.huimv.cattle.utils.ChineseCharacterUtil;
 import com.huimv.cattle.utils.ResultUtil;
 import com.huimv.common.utils.Result;
 import com.huimv.common.utils.ResultCode;
@@ -60,6 +57,10 @@ public class SysFarmServiceImpl extends ServiceImpl<SysFarmMapper, SysFarm> impl
     @Resource
     private SysUserAccountMapper sysUserAccountMapper;
     @Resource
+    private SysFarmServiceMapper sysFarmServiceMapper;
+    @Resource
+    private SysUserGroupMapper sysUserGroupMapper;
+    @Resource
     private ResultUtil resultUtil;
     @Value("${manager.defaultPassword}")
     private String defaultPassword;
@@ -359,6 +360,131 @@ public class SysFarmServiceImpl extends ServiceImpl<SysFarmMapper, SysFarm> impl
         return resultUtil.getResult(sysFarmMapper.insert(sysFarm));
     }
 
+    @Override
+    @Transactional(rollbackFor = RuntimeException.class)
+    public Result addFarm(Map<String, String> paramsMap) {
+        String farmId = paramsMap.get("farmId");
+        String adcode = this.getOne(new QueryWrapper<SysFarm>().eq("farm_code", farmId)).getAdcode();
+        String farms = paramsMap.get("farms");
+        String[] farmCodes = farms.split(",");
+        List<String> farmCodeList = new ArrayList<>();
+        for (int i = 1; i <= farmCodes.length; i++) {
+            if (i < 10){
+                farmCodeList.add(farmId+"00"+i);
+            }else {
+                farmCodeList.add(farmId+"0"+i);
+            }
+        }
+        int i = 0;
+        for (String s : farmCodeList) {
+            SysFarm sysFarm = new SysFarm();
+            sysFarm.setFarmName(farmCodes[i]);
+            sysFarm.setFarmCode(s);
+            sysFarm.setLinkman("1");
+            sysFarm.setPhone("123456");
+            sysFarm.setAddress(farmCodes[i]);
+            sysFarm.setFarmStatus(1);
+            sysFarm.setAdcode(adcode);
+            sysFarm.setParentCode(farmId);
+            sysFarm.setType(2);
+            this.save(sysFarm);
+            com.huimv.cattle.pojo.SysFarmService farmService = new com.huimv.cattle.pojo.SysFarmService();
+            farmService.setFarmName(farmCodes[i]);
+            farmService.setFarmCode(s);
+            farmService.setStartDate(new Date());
+            farmService.setEndDate(getNextYearPreDay());
+            farmService.setServiceCycle(12);
+            farmService.setServiceStatus(1);
+            farmService.setCurrentStatus(1);
+            sysFarmServiceMapper.insert(farmService);
+
+            SysUserAccount sysUserAccount = new SysUserAccount();
+            sysUserAccount.setUserName(farmCodes[i]+"管理员");
+            sysUserAccount.setMale(1);
+            sysUserAccount.setMobile("123");
+            sysUserAccount.setAccountClass(2);
+            sysUserAccount.setAccountType(1);
+            if (farmCodes[i].endsWith("村")){
+                farmCodes[i] = farmCodes[i].substring(0,farmCodes[i].length() - 1);
+            }
+            sysUserAccount.setAccountName(ChineseCharacterUtil.convertHanzi2Pinyin(farmCodes[i],true));
+            sysUserAccount.setPassword("123456");
+            sysUserAccount.setFarmCode(s);
+            sysUserAccount.setLoginStatus(1);
+            sysUserAccountMapper.insert(sysUserAccount);
+            SysUserGroup sysUserGroup = new SysUserGroup();
+            sysUserGroup.setUserId(sysUserAccount.getId().intValue());
+            sysUserGroup.setGroupId(23);
+            sysUserGroupMapper.insert(sysUserGroup);
+            i++;
+        }
+        String farmCodes1 = "";
+
+        for (String s : farmCodeList) {
+            farmCodes1+= s+",";
+        }
+        SysRegionCounTownVill sysRegionCounTownVill = sysRegionCounTownVillMapper.selectOne(new QueryWrapper<SysRegionCounTownVill>().eq("city_code", farmId));
+        sysRegionCounTownVill.setCityCodeSub(farmCodes1);
+        sysRegionCounTownVillMapper.updateById(sysRegionCounTownVill);
+        return Result.SUCCESS();
+    }
+
+    @Override
+    public Result addTown(Map<String, String> paramsMap) {
+        String farms = paramsMap.get("farms");
+        String[] farmCodes = farms.split(",");
+        List<String> farmCodeList = new ArrayList<>();
+        for (int i = 3; i <= farmCodes.length+2; i++) {
+            if (i < 10){
+                farmCodeList.add("6208"+"00"+i);
+            }else {
+                farmCodeList.add("6208"+"0"+i);
+            }
+        }
+        int i = 0;
+        for (String s : farmCodeList) {
+            com.huimv.cattle.pojo.SysFarmService farmService = new com.huimv.cattle.pojo.SysFarmService();
+            farmService.setFarmName(farmCodes[i]);
+            farmService.setFarmCode(s);
+            farmService.setStartDate(new Date());
+            farmService.setEndDate(getNextYearPreDay());
+            farmService.setServiceCycle(12);
+            farmService.setServiceStatus(1);
+            farmService.setCurrentStatus(1);
+            sysFarmServiceMapper.insert(farmService);
+
+            SysUserAccount sysUserAccount = new SysUserAccount();
+            sysUserAccount.setUserName(farmCodes[i]+"管理员");
+            sysUserAccount.setMale(1);
+            sysUserAccount.setMobile("123");
+            sysUserAccount.setAccountClass(1);
+            sysUserAccount.setAccountType(1);
+            if (farmCodes[i].endsWith("镇")|| farmCodes[i].endsWith("乡")){
+                farmCodes[i] = farmCodes[i].substring(0,farmCodes[i].length() - 1);
+            }
+            sysUserAccount.setAccountName(ChineseCharacterUtil.convertHanzi2Pinyin(farmCodes[i],true));
+            sysUserAccount.setPassword("123456");
+            sysUserAccount.setFarmCode(s);
+            sysUserAccount.setLoginStatus(1);
+            sysUserAccountMapper.insert(sysUserAccount);
+            SysUserGroup sysUserGroup = new SysUserGroup();
+            sysUserGroup.setUserId(sysUserAccount.getId().intValue());
+            sysUserGroup.setGroupId(24);
+            sysUserGroupMapper.insert(sysUserGroup);
+            i++;
+        }
+        return Result.SUCCESS();
+    }
+
+    public static Date getNextYearPreDay() {
+        Calendar ca = Calendar.getInstance();//得到一个Calendar的实例
+        ca.setTime(new Date());   //设置时间为当前时间
+        ca.add(Calendar.YEAR, +1); //年份+1
+        // ca.add(Calendar.MONTH, -1); // 月份-1
+        ca.add(Calendar.DATE, -1); // 日期-1
+        return ca.getTime();
+    }
+
     //获取所有乡镇信息
     private JSONArray getAllTowns() {
         QueryWrapper<SysFarm> queryWrapper = new QueryWrapper<>();

+ 97 - 0
huimv-cattle/src/main/java/com/huimv/cattle/utils/ChineseCharacterUtil.java

@@ -0,0 +1,97 @@
+package com.huimv.cattle.utils;
+
+import net.sourceforge.pinyin4j.PinyinHelper;
+import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
+import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * 获取首字母工具
+ *
+ * @author
+ * @Date
+ */
+public class ChineseCharacterUtil {
+
+    /***
+     * 将汉字转成拼音(取首字母或全拼)
+     * @param hanzi
+     * @param full 是否全拼
+     * @return
+     */
+    public static String convertHanzi2Pinyin(String hanzi,boolean full)
+    {
+        /***
+         * ^[\u2E80-\u9FFF]+$ 匹配所有东亚区的语言
+         * ^[\u4E00-\u9FFF]+$ 匹配简体和繁体
+         * ^[\u4E00-\u9FA5]+$ 匹配简体
+         */
+        String regExp="^[\u4E00-\u9FFF]+$";
+        StringBuffer sb=new StringBuffer();
+        if(hanzi==null||"".equals(hanzi.trim()))
+        {
+            return "";
+        }
+        String pinyin="";
+        for(int i=0;i<hanzi.length();i++)
+        {
+            char unit=hanzi.charAt(i);
+            if(match(String.valueOf(unit),regExp))//是汉字,则转拼音
+            {
+                pinyin=convertSingleHanzi2Pinyin(unit);
+                if(full)
+                {
+                    sb.append(pinyin);
+                }
+                else
+                {
+                    sb.append(pinyin.charAt(0));
+                }
+            }
+            else
+            {
+                sb.append(unit);
+            }
+        }
+        return sb.toString();
+    }
+    /***
+     * 将单个汉字转成拼音
+     * @param hanzi
+     * @return
+     */
+    private static String convertSingleHanzi2Pinyin(char hanzi)
+    {
+        HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
+        outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
+        String[] res;
+        StringBuffer sb=new StringBuffer();
+        try {
+            res = PinyinHelper.toHanyuPinyinStringArray(hanzi,outputFormat);
+            sb.append(res[0]);//对于多音字,只用第一个拼音
+        } catch (Exception e) {
+            e.printStackTrace();
+            return "";
+        }
+        return sb.toString();
+    }
+
+    /***
+     * @param str 源字符串
+     * @param regex 正则表达式
+     * @return 是否匹配
+     */
+    public static boolean match(String str,String regex)
+    {
+        Pattern pattern=Pattern.compile(regex);
+        Matcher matcher=pattern.matcher(str);
+        return matcher.find();
+    }
+
+    public static void main(String[] args) {
+        System.out.println(convertHanzi2Pinyin("我是中国人",true));
+    }
+}
+