From 0c19b6274172335177078c8ba27e2248f23db013 Mon Sep 17 00:00:00 2001 From: wxy <1229384355@qq.com> Date: Wed, 27 Jul 2022 16:57:15 +0800 Subject: [PATCH] 未成年人新增修改 --- juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/MinorController.java | 33 ++++++++++++--------------------- juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/MinorMapper.java | 6 ++++++ juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/MinorMapper.xml | 7 ++++++- juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/IMinorService.java | 8 ++++++++ juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/MinorServiceImpl.java | 134 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------- juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/vo/MinorPage.java | 2 +- juvenile-prosecution-vue/src/views/business/MinorList.vue | 8 +++++--- juvenile-prosecution-vue/src/views/business/modules/MinorModal.vue | 29 +++++++++++++++-------------- 8 files changed, 162 insertions(+), 65 deletions(-) diff --git a/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/MinorController.java b/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/MinorController.java index c000f47..efcd032 100644 --- a/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/MinorController.java +++ b/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/MinorController.java @@ -121,10 +121,18 @@ public class MinorController { @ApiOperation(value = "未成年人-添加", notes = "未成年人-添加") @PostMapping(value = "/add") public Result add(@RequestBody MinorPage minorPage) { - Minor minor = new Minor(); - BeanUtils.copyProperties(minorPage, minor); - minorService.saveMain(minor, minorPage.getFamilyList()); - return Result.OK("添加成功!"); +// Integer count=0; +// if(oConvertUtils.isNotEmpty(minorPage) && oConvertUtils.isNotEmpty(minorPage.getIdentity())){ +// count=minorService.getMinorByIdCard(minorPage.getIdentity()); +// } +// if(count==0){ + Minor minor = new Minor(); + BeanUtils.copyProperties(minorPage, minor); + minorService.saveMain(minor, minorPage.getFamilyList()); + return Result.OK("添加成功!"); +// }else { +// return Result.error("身份证号重复!"); +// } } /** @@ -271,11 +279,6 @@ public class MinorController { @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result importExcel(HttpServletRequest request, HttpServletResponse response) { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - String sysOrgCode=""; - if(oConvertUtils.isNotEmpty(sysUser) && oConvertUtils.isNotEmpty(sysUser.getOrgCode())){ - sysOrgCode=sysUser.getOrgCode(); - } Map fileMap = multipartRequest.getFileMap(); for (Map.Entry entity : fileMap.entrySet()) { MultipartFile file = entity.getValue();// 获取上传文件对象 @@ -291,21 +294,9 @@ public class MinorController { //获取Excel文档中的第一个表单 Sheet sht0 = workbook.getSheetAt(0); List minorPages=new ExcelImportServiceUtil().importExcel(new ArrayList<>(),sht0, Minor.class, params,pictures); - if(oConvertUtils.isNotEmpty(minorPages) && oConvertUtils.isNotEmpty(sysOrgCode)){ - String finalSysOrgCode = sysOrgCode; - minorPages.stream().forEach(minor -> { - minor.setSysOrgCode(finalSysOrgCode); - }); - } //获取Excel文档中的第二个表单 Sheet sht1 = workbook.getSheetAt(1); List families=new ExcelImportServiceUtil().importExcel(new ArrayList<>(),sht1, Family.class, params,pictures); - if(oConvertUtils.isNotEmpty(families) && oConvertUtils.isNotEmpty(sysOrgCode)){ - String finalSysOrgCode = sysOrgCode; - minorPages.stream().forEach(family -> { - family.setSysOrgCode(finalSysOrgCode); - }); - } minorService.saveMain(minorPages,families); return Result.OK(); } catch (Exception e) { diff --git a/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/MinorMapper.java b/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/MinorMapper.java index c74295b..b7708c2 100644 --- a/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/MinorMapper.java +++ b/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/MinorMapper.java @@ -28,5 +28,11 @@ public interface MinorMapper extends BaseMapper { */ IPage queryPageList(Page page,@Param("name") String name,@Param("sysOrgCode") String sysOrgCode); + /** + * 根据身份证号查询总数 + * @param identity + * @return + */ + Integer getMinorByIdCard(@Param("identity") String identity); } diff --git a/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/MinorMapper.xml b/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/MinorMapper.xml index 117ac0a..5ee1157 100644 --- a/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/MinorMapper.xml +++ b/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/MinorMapper.xml @@ -43,7 +43,12 @@ and sys_org_code like concat(#{sysOrgCode},'%') - ORDER BY create_time + ORDER BY create_time desc + + + \ No newline at end of file diff --git a/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/IMinorService.java b/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/IMinorService.java index 6d89fa9..39ea440 100644 --- a/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/IMinorService.java +++ b/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/IMinorService.java @@ -3,6 +3,7 @@ package org.jeecg.modules.system.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import org.apache.ibatis.annotations.Param; import org.jeecg.modules.system.entity.Family; import org.jeecg.modules.system.entity.Minor; import org.jeecg.modules.system.entity.SysDepart; @@ -52,4 +53,11 @@ public interface IMinorService extends IService { * */ public void saveMain(List minor,List familyList) ; + + /** + * 根据身份证号查询总数 + * @param identity + * @return + */ + Integer getMinorByIdCard(String identity); } diff --git a/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/MinorServiceImpl.java b/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/MinorServiceImpl.java index 0ae937a..287091d 100644 --- a/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/MinorServiceImpl.java +++ b/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/MinorServiceImpl.java @@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import javassist.bytecode.analysis.Executor; +import org.apache.ibatis.annotations.Param; +import org.apache.shiro.SecurityUtils; +import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; import org.jeecg.modules.system.entity.Family; import org.jeecg.modules.system.entity.Minor; @@ -20,10 +23,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Random; +import java.util.*; import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -56,53 +56,79 @@ public class MinorServiceImpl extends ServiceImpl implements @Override @Transactional public void saveMain(Minor minor, List familyList) { - minorMapper.insert(minor); + if(familyList!=null && familyList.size()>0) { //判断家庭成员信息里的数据是否包含未成年人,默认包含 Boolean falg=true; + //家庭成员是否有人犯罪,默认没有人犯罪 + Boolean isCrime=false; //户籍信息去重 List families= familyList.stream().distinct().collect(Collectors.toList()); for(Family entity:families) { if(!entity.getIdentity().equals(minor.getIdentity())) { falg = false; } - //外键设置 - familyMapper.insert(entity); + if(oConvertUtils.isNotEmpty(entity.getCrime()) && entity.getCrime().equals(Family.IS_CRIME)){ + isCrime=true; + } } - if(!falg){ - Family family=new Family(); - family.setCrime(Family.IS_NOT_CRIME); - family.setName(minor.getName()); - family.setHouseholdNum(minor.getHouseholdNum()); - family.setIdentity(minor.getIdentity()); - family.setNumber(minor.getNumber()); - family.setGender(minor.getGender()); - family.setAddress(minor.getAddress()); - family.setRelation(minor.getRelation()); + if(isCrime){ + minor.setReason(String.valueOf(Minor.ATTENTION_REASON_CRIME)); } } + + familyMapper.insertBatch(familyList); + minorMapper.insert(minor); } @Override @Transactional public void updateMain(Minor minor,List familyList) { - minorMapper.updateById(minor); - //1.先删除子表数据 if(oConvertUtils.isNotEmpty(minor) && oConvertUtils.isNotEmpty(minor.getHouseholdNum())){ familyMapper.deleteByHouseholdNum(minor.getHouseholdNum()); } - //2.子表数据重新插入 if(familyList!=null && familyList.size()>0) { + //判断家庭成员信息里的数据是否包含未成年人,默认包含 + Boolean falg=true; + //家庭成员是否有人犯罪,默认没有人犯罪 + Boolean isCrime=false; //户籍信息去重 List families= familyList.stream().distinct().collect(Collectors.toList()); - for(Family entity:familyList) { - //外键设置 - entity.setMinorId(minor.getId()); - familyMapper.insert(entity); + for(Family entity:families) { + if(!entity.getIdentity().equals(minor.getIdentity())) { + falg = false; + } + if(oConvertUtils.isNotEmpty(entity.getCrime()) && entity.getCrime().equals(Family.IS_CRIME)){ + isCrime=true; + } } +// if(!falg){ +// Family family=new Family(); +// family.setCrime(Family.IS_NOT_CRIME); +// family.setName(minor.getName()); +// family.setHouseholdNum(minor.getHouseholdNum()); +// family.setIdentity(minor.getIdentity()); +// family.setNumber(minor.getNumber()); +// family.setGender(minor.getGender()); +// family.setAddress(minor.getAddress()); +// family.setRelation(minor.getRelation()); +// families.add(family); +// } + if(isCrime){ + if(oConvertUtils.isNotEmpty(minor.getReason())){ + if(!minor.getReason().contains(String.valueOf(Minor.ATTENTION_REASON_CRIME))){ + minor.setReason(minor.getReason()+","+Minor.ATTENTION_REASON_CRIME); + } + }else { + minor.setReason(String.valueOf(Minor.ATTENTION_REASON_CRIME)); + } + } + familyMapper.insertBatch(familyList); } + + minorMapper.updateById(minor); } @Override @@ -153,8 +179,56 @@ public class MinorServiceImpl extends ServiceImpl implements @Override @Transactional public void saveMain(List minors, List familyList) { - minorMapper.insertBatch(minors); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + String sysOrgCode=""; + if(oConvertUtils.isNotEmpty(sysUser) && oConvertUtils.isNotEmpty(sysUser.getOrgCode())){ + sysOrgCode=sysUser.getOrgCode(); + } + Date createTime=new Date(); + //存放是否犯罪为是的户号和某一个家庭成员的信息 + Map houseFamily=new HashMap<>(); + if(oConvertUtils.isNotEmpty(familyList) ){ + String finalSysOrgCode = sysOrgCode; + familyList.stream().forEach(family -> { + if(oConvertUtils.isNotEmpty(family)){ + family.setCreateTime(createTime); + family.setSysOrgCode(finalSysOrgCode); + if(oConvertUtils.isNotEmpty(family.getCrime()) && oConvertUtils.isNotEmpty(family.getHouseholdNum())){ + houseFamily.put(family.getHouseholdNum(),family); + } + } + }); + } + if(oConvertUtils.isNotEmpty(minors)){ + String finalSysOrgCode = sysOrgCode; + minors.stream().forEach(minor -> { + if(oConvertUtils.isNotEmpty(minor)){ + minor.setCreateTime(createTime); + if(oConvertUtils.isNotEmpty(houseFamily) && oConvertUtils.isNotEmpty(minor.getHouseholdNum())){ + String houseNum=minor.getHouseholdNum(); + Family family=houseFamily.get(houseNum); + if(oConvertUtils.isNotEmpty(family) && oConvertUtils.isNotEmpty(family.getSysOrgCode())){ + minor.setSysOrgCode(family.getSysOrgCode()); + if(oConvertUtils.isNotEmpty(minor.getReason())){ + if(!minor.getReason().contains(String.valueOf(Minor.ATTENTION_REASON_CRIME))){ + minor.setReason(minor.getReason()+","+Minor.ATTENTION_REASON_CRIME); + } + }else { + minor.setReason(String.valueOf(Minor.ATTENTION_REASON_CRIME)); + } + }else { + minor.setSysOrgCode(finalSysOrgCode); + } + //1.先删除子表数据 + familyMapper.deleteByHouseholdNum(minor.getHouseholdNum()); + }else { + minor.setSysOrgCode(finalSysOrgCode); + } + } + }); + } familyMapper.insertBatch(familyList); + minorMapper.insertBatch(minors); } @@ -209,4 +283,14 @@ public class MinorServiceImpl extends ServiceImpl implements System.out.println("主线程完成"); } + + /** + * 根据身份证号查询总数 + * @param identity + * @return + */ + @Override + public Integer getMinorByIdCard(String identity){ + return minorMapper.getMinorByIdCard(identity); + } } diff --git a/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/vo/MinorPage.java b/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/vo/MinorPage.java index 591ca22..ca31f59 100644 --- a/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/vo/MinorPage.java +++ b/juvenile-prosecution-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/vo/MinorPage.java @@ -100,7 +100,7 @@ public class MinorPage { @Excel(name = "重点关注原因", width = 15,dicCode = "attention_reason") @ApiModelProperty(value = "重点关注原因") @Dict(dicCode = "attention_reason") - private Integer reason; + private String reason; /**特殊原因*/ @Excel(name = "特殊原因", width = 15) @ApiModelProperty(value = "特殊原因") diff --git a/juvenile-prosecution-vue/src/views/business/MinorList.vue b/juvenile-prosecution-vue/src/views/business/MinorList.vue index f4f7172..d8279dd 100644 --- a/juvenile-prosecution-vue/src/views/business/MinorList.vue +++ b/juvenile-prosecution-vue/src/views/business/MinorList.vue @@ -60,7 +60,7 @@ :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" @change="handleTableChange"> - + 编辑 @@ -171,7 +171,8 @@ export default { { title: '学校名称', align: 'center', - dataIndex: 'schoolName' + dataIndex: 'schoolName', + scopedSlots: { customRender: 'longText' } }, { title: '入学年份', @@ -207,7 +208,8 @@ export default { { title: '重点关注原因', align: 'center', - dataIndex: 'reason_dictText' + dataIndex: 'reason_dictText', + scopedSlots: { customRender: 'longText' } }, { title: '操作', diff --git a/juvenile-prosecution-vue/src/views/business/modules/MinorModal.vue b/juvenile-prosecution-vue/src/views/business/modules/MinorModal.vue index dd82721..58b7f58 100644 --- a/juvenile-prosecution-vue/src/views/business/modules/MinorModal.vue +++ b/juvenile-prosecution-vue/src/views/business/modules/MinorModal.vue @@ -78,7 +78,11 @@ - + + @@ -166,7 +170,7 @@ export default { width: '230px', type: FormTypes.input, defaultValue: '', - placeholder: '请输入${title}', + placeholder: '请输入', validateRules: [{ required: true, message: '${title}不能为空' }] }, { @@ -175,8 +179,7 @@ export default { width: '230px', type: FormTypes.input, defaultValue: '', - placeholder: '请输入${title}', - validateRules: [{ required: true, message: '${title}不能为空' }] + placeholder: '请输入', }, { title: '姓名', @@ -184,7 +187,7 @@ export default { width: '100px', type: FormTypes.input, defaultValue: '', - placeholder: '请输入${title}', + placeholder: '请输入', validateRules: [{ required: true, message: '${title}不能为空' }] }, { @@ -193,7 +196,7 @@ export default { width: '190px', type: FormTypes.input, defaultValue: '', - placeholder: '请输入${title}', + placeholder: '请输入', validateRules: [{ // pattern: '/(^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$)|(^[1-9]\\d{7}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}$)/', pattern: '^\\d{6}(18|19|20)?\\d{2}(0[1-9]|1[012])(0[1-9]|[12]\\d|3[01])\\d{3}(\\d|[xX])$', @@ -206,7 +209,7 @@ export default { width: '120px', type: FormTypes.input, defaultValue: '', - placeholder: '请输入${title}', + placeholder: '请输入', validateRules: [{ required: true, message: '${title}不能为空' }] }, { @@ -215,8 +218,7 @@ export default { width: '180px', type: FormTypes.input, defaultValue: '', - placeholder: '请输入${title}', - validateRules: [{ required: true, message: '${title}不能为空' }] + placeholder: '请输入', }, { title: '现住址', @@ -224,7 +226,7 @@ export default { width: '200px', type: FormTypes.input_pop, defaultValue: '', - placeholder: '请输入${title}' + placeholder: '请输入' }, { title: '是否犯罪', @@ -233,8 +235,7 @@ export default { type: FormTypes.select, options: [], dictCode: 'is_crime', - placeholder: '请选择${title}', - validateRules: [{ required: true, message: '${title}不能为空' }] + placeholder: '请选择', }, { title: '犯罪原因', @@ -242,7 +243,7 @@ export default { width: '200px', type: FormTypes.input_pop, defaultValue: '', - placeholder: '请输入${title}' + placeholder: '请输入' }, { title: '其他参考信息', @@ -250,7 +251,7 @@ export default { width: '200px', type: FormTypes.input_pop, defaultValue: '', - placeholder: '请输入${title}' + placeholder: '请输入' } ] } -- libgit2 0.21.4